package com.ruoyi.energy.mapper;

import java.util.List;
import com.ruoyi.energy.domain.EmsDevice;

/**
 * 设备管理Mapper接口
 * 
 * @author ruoyi
 * @date 2024-01-20
 */
public interface EmsDeviceMapper {
    
    /**
     * 查询设备
     * 
     * @param deviceId 设备主键
     * @return 设备
     */
    public EmsDevice selectEmsDeviceByDeviceId(Long deviceId);

    /**
     * 查询设备列表
     * 
     * @param emsDevice 设备
     * @return 设备集合
     */
    public List<EmsDevice> selectEmsDeviceList(EmsDevice emsDevice);

    /**
     * 根据设备编码查询设备
     * 
     * @param deviceCode 设备编码
     * @return 设备
     */
    public EmsDevice selectEmsDeviceByDeviceCode(String deviceCode);

    /**
     * 根据部门ID查询设备列表
     * 
     * @param deptId 部门ID
     * @return 设备集合
     */
    public List<EmsDevice> selectEmsDeviceListByDeptId(Long deptId);

    /**
     * 根据设备类型查询设备列表
     * 
     * @param deviceType 设备类型
     * @return 设备集合
     */
    public List<EmsDevice> selectEmsDeviceListByType(String deviceType);

    /**
     * 新增设备
     * 
     * @param emsDevice 设备
     * @return 结果
     */
    public int insertEmsDevice(EmsDevice emsDevice);

    /**
     * 修改设备
     * 
     * @param emsDevice 设备
     * @return 结果
     */
    public int updateEmsDevice(EmsDevice emsDevice);

    /**
     * 删除设备
     * 
     * @param deviceId 设备主键
     * @return 结果
     */
    public int deleteEmsDeviceByDeviceId(Long deviceId);

    /**
     * 批量删除设备
     * 
     * @param deviceIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteEmsDeviceByDeviceIds(Long[] deviceIds);

    /**
     * 校验设备编码是否唯一
     * 
     * @param deviceCode 设备编码
     * @return 结果
     */
    public int checkDeviceCodeUnique(String deviceCode);

    /**
     * 查询设备数量统计
     * 
     * @param emsDevice 设备查询条件
     * @return 设备数量
     */
    public int countEmsDevice(EmsDevice emsDevice);

    /**
     * 查询部门下设备数量
     * 
     * @param deptId 部门ID
     * @return 设备数量
     */
    public int countEmsDeviceByDeptId(Long deptId);
} 